﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BussinessEntity;
using Equin.ApplicationFramework;
using BussinessLayer;
using Utilities;

namespace PresentationLayer
{
    public partial class ucService : UserControl
    {
        
        public ucService()
        {
            InitializeComponent();
            LoadForm();
        }

        void LoadForm()
        {
            dgvService.AutoGenerateColumns = false;
            ActionResult<Service> rs = ServiceManager.GetAll();
            if(rs.Success)
            dgvService.DataSource = new BindingListView<Service>(rs.Array);
        }
        void LoadForm(List<Service> rs)
        {
            dgvService.AutoGenerateColumns = false;
            dgvService.DataSource = new BindingListView<Service>(rs);
        }

        private void btnInsert_Click(object sender, EventArgs e)
        {
            frmService frm = new frmService();
            frm.ShowDialog();
            if (frm.DichVuMoi != null)
            {
                LoadForm();
            }
        }

        private void dgvService_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex > -1)
            {
                frmService frm = new frmService(DataUtil.ToString(dgvService.SelectedRows[0].Cells["MaDV"].Value));
                frm.ShowDialog();
                if (frm.DichVuMoi != null)
                {
                    LoadForm();
                }
            }
        }

        private void biUpdate_Click(object sender, EventArgs e)
        {
            if (dgvService.SelectedRows.Count > 0)
            {
                frmService frm = new frmService(DataUtil.ToString(dgvService.SelectedRows[0].Cells["MaDV"].Value));
                frm.ShowDialog();
                if (frm.DichVuMoi != null)
                {
                    LoadForm();
                }
            }
            else
            {
                MessageBox.Show("Bạn phải chọn một dòng thông tin dịch vụ", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

        private void biDelete_Click(object sender, EventArgs e)
        {
            if (dgvService.SelectedRows.Count > 0)
            {
                if (MessageBox.Show("Bạn có chắn chắn xóa không?", "Xác nhận", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.OK)
                {
                    string madv = DataUtil.ToString(dgvService.SelectedRows[0].Cells["MaDV"].Value);
                    var rs = ServiceManager.Delete(madv);
                    if (rs.Success)
                    {
                        MessageBox.Show("Xóa thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        LoadForm();
                    }
                    else
                        MessageBox.Show(rs.ToString(), "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                MessageBox.Show("Bạn phải chọn một dòng thông tin dịch vụ", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

        private void biRefresh_Click(object sender, EventArgs e)
        {
            LoadForm();
        }

        private void biSearch_Click(object sender, EventArgs e)
        {
            frmSearchService frm = new frmSearchService();
            frm.ShowDialog();
            if (frm.Result != null)
            {
                LoadForm(frm.Result);
            }
        }

        private void btnImport_Click(object sender, EventArgs e)
        {
            ExcelReader.frmDocFileExcel frm = new ExcelReader.frmDocFileExcel();
            frm.ShowDialog();
            if (frm.Result != null)
            {
                ActionResult<Service> rs = ServiceManager.Insert(frm.Result);
                if (rs.Success)
                {
                    MessageBox.Show("Đã thêm thành công " + rs.Array.Count + " thông tin dịch vụ.", "Thống báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    LoadForm();
                }
                else
                {
                    if (MessageBox.Show("Đã thêm thành công " + rs.Array.Count + " thông tin dịch vụ.\r\nXảy ra " + rs.Exceptions.Count + " lỗi.\r\nBạn có muốn xem lỗi không?", "Thống báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        LoadForm();
                        ExcelReader.frmHienThiLoi frm1 = new ExcelReader.frmHienThiLoi(rs.Exceptions);
                        frm1.ShowDialog();
                    }
                }
            }
        }
    }
}
